New OpenMP directives for irregular data access loops

نویسندگان

  • Jesús Labarta
  • Eduard Ayguadé
  • José Oliver
  • D. S. Henty
چکیده

Many scientific applications involve array operations that are sparse in nature, ie array elements depend on the values of relatively few elements of the same or another array. When parallelised in the shared-memory model, there are often inter-thread dependencies which require that the individual array updates are protected in some way. Possible strategies include protecting all the updates, or having each thread compute local temporary results which are then combined globally across threads. However, for the extremely common situation of sparse array access, neither of these approaches is particularly efficient. The key point is that data access patterns usually remain constant for a long time, so it is possible to use an inspector/executor approach. When the sparse operation is first encountered, the access pattern is inspected to identify those updates which have potential inter-thread dependencies. Whenever the code is actually executed, only these selected updates are protected. We propose a new OPENMP clause, indirect, for parallel loops that have irregular data access patterns. This is trivial to implement in a conforming way by protecting every array update, but also allows for an inspector/executor compiler implementation which will be more efficient in sparse cases. We describe efficient compiler implementation strategies for the new directive. We also present timings from a Discrete Element Modelling application code where the inspector/executor approach has been implemented by hand using standard OPENMP directives. The results demonstrate that the method can be extremely efficient in practice.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Effective OpenMP Extensions for Irregular Applications on Cluster Environments

Sparse and unstructured computations are widely used in Scientific and Engineering Applications. Such problem inherent in sparse and unstructured computations is called irregular problem. In this paper, we propose some extensions to OpenMP directives, aiming at efficient irregular OpenMP codes to be executed in parallel. These OpenMP directives include scheduling for irregular loops, inspector/...

متن کامل

Enhancing OpenMP With Features for Locality

OpenMP is a set of directives extending Fortran and C which provide a shared memory programming interface for shared-address space machines. However, there are no directives for controlling the locality of data. Such control can critically affect performance on machines which exhibit non-uniform memory access times. In this paper, we present a set of extensions to OpenMP to provide support for ...

متن کامل

Nanos Mercurium: a Research Compiler for OpenMP

OpenMP is still in the process of being defined and extended to broad the range of applications and parallelization strategies it can be used for. The proposal of OpenMP extensions may require the implementation of new features in the runtime system supporting the OpenMP parallel execution and modifications in an existing OpenMP compiler, either at the front end (parsing of new directives and c...

متن کامل

Comparison of OpenMP and Classical Multi-Threading Parallelization for Regular and Irregular Algorithms

The new emerging Distributed Shared Memory architecture promises to be more scalable than Symmetric Multiprocessor architecture, and leads to a regain of interest for parallel shared-memory programming paradigms. This paper compares two such important paradigms: classical multithreading and multi-threading based on compiler directives (with OpenMP). Several implementations of regular and irregu...

متن کامل

Efficient Implementation of OpenMP for Clusters with Implicit Data Distribution

This paper discusses an approach to implement OpenMP on clusters by translating it to Global Arrays (GA). The basic translation strategy from OpenMP to GA is described. GA requires a data distribution; we do not expect the user to supply this; rather, we show how we perform data distribution and work distribution according to OpenMP static loop scheduling. An inspector-executor strategy is empl...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Scientific Programming

دوره 9  شماره 

صفحات  -

تاریخ انتشار 2001